home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 7
/
FM Towns Free Software Collection 7.iso
/
game
/
map_quiz
/
a_sameri.bas
< prev
next >
Wrap
BASIC Source File
|
1993-11-30
|
13KB
|
321 lines
1000 ' ******************************************************************
1010 ' * *
1020 ' * :::::::::::: A_SAMERI.BAS :::::::::::::: *
1030 ' * Programmed By T.K.Mosaku *
1040 ' * ~~~~~~~~~~~~~~~~~~~~~~~~ *
1050 ' ******************************************************************
1060 '
1070 '** 画面表示 **
1080 MENU=1
1090 LOAD@"D_AMMAP.TIF", (0, 0)
1100 LOAD@"F_SWICH.TIF", (7, 7)
1110 LOAD@"F_SWICH3.TIF",(85,7)
1120 '
1130 '** MENU 画面 **
1140 *MENU_GAMEN
1150 CLS 4:SIR=0
1160 LINE (205,416)-(392,435),PSET,%2,BF,%13
1170 LOCATE 4, 21:COLOR 1:PRINT"世界の国名クイズ・・・・・何問に挑戦しますか。"
1180 LOCATE 25,22:COLOR 2:PRINT" 5問 10問 20問 30問 "
1190 LOCATE 48,23:COLOR 1:PRINT"左クリックして選んで下さい。"
1200 '
1210 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
1220 '
1230 '** MENU 選択 **
1240 X=MOUSE(4,0):Y=MOUSE(5,0)
1250 IF X>90 AND X<114 AND Y>27 AND Y<40 THEN SIR=1 :GOTO *SIRABERU
1260 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_1
1270 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
1280 IF X>217 AND X<239 AND Y>420 AND Y<433 THEN PNO= 5:GOTO *MOZI
1290 IF X>258 AND X<287 AND Y>420 AND Y<433 THEN PNO=10:GOTO *MOZI
1300 IF X>305 AND X<336 AND Y>420 AND Y<433 THEN PNO=20:GOTO *MOZI
1310 IF X>353 AND X<383 AND Y>420 AND Y<433 THEN PNO=30:GOTO *MOZI
1320 IF X>401 AND X<432 AND Y>420 AND Y<433 THEN PNO=40:GOTO *MOZI
1330 GOTO 1240
1340 '
1350 '** 画面設定 **
1360 *MOZI
1370 QQN=0
1380 IF QQN=2 THEN GOTO 1630
1390 CLS 4
1400 LINE (205,416)-(442,435),PSET,%4,BF
1410 LOAD@ "E_GRAPH.TIF",(165,454)
1420 LOCATE 5, 21:COLOR 1:PRINT"問 題"
1430 LOCATE 25,22:COLOR 2:PRINT" "
1440 LOCATE 20,23:COLOR 1
1450 PRINT"今までの成績 正答数 正答率 %"
1460 IF QQN=1 THEN QQN=QQN+1:GOTO 1630
1470 '
1480 '** MAIN LOOTINE **
1490 CY=0:CN=0:CCN=0:DIM KIR(PNO-1):DIM NFW(PNO):KIRN=0:QQN=0
1500 '
1510 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1':MOUSE 4,8,8,611,364
1520 '
1530 RANDOMIZE TIME
1540 NFW(0)=INT(RND*32)
1550 T=1
1560 IF CCN=PNO THEN GOTO 1710
1570 N=INT(RND*32)+1
1580 FOR J=0 TO T-1
1590 IF NFW(J)=N THEN GOTO 1570
1600 NEXT J
1610 NFW(T)=N:QQ=N
1620 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
1630 TTN=0
1640 IF QQ=<10 THEN Q=QQ :GOTO *M0
1650 IF QQ>10 AND QQ=<20 THEN Q=QQ-10:GOTO *M1
1660 IF QQ>20 AND QQ=<30 THEN Q=QQ-20:GOTO *M2
1670 IF QQ>30 AND QQ=<40 THEN Q=QQ-30:GOTO *M3
1680 CCN=CCN+1:T=T+1:GOTO 1560
1690 T=T+1:GOTO 1560
1700 '
1710 IF KIRN=0 THEN 3520 ELSE 3280
1720 '
1730 *M0:ON Q GOTO *A1, *A2, *A3, *A4, *A5, *A6, *A7, *A8, *A9, *A10
1740 *M1:ON Q GOTO *A11,*A12,*A13,*A14,*A15,*A16,*A17,*A18,*A19,*A21
1750 *M2:ON Q GOTO *A21,*A22,*A23,*A24,*A25,*A26,*A27,*A28,*A29,*A30
1760 *M3:ON Q GOTO *A31,*A32,*A33
1770 '
1780 *A1 :A$="チリ" :XP=332:YP=291:GOTO *SENTAKU
1790 *A2 :A$="アルゼンチン" :XP=365:YP=294:GOTO *SENTAKU
1800 *A3 :A$="ウルグァイ" :XP=383:YP=295:GOTO *SENTAKU
1810 *A4 :A$="パラグァイ" :XP=382:YP=253:GOTO *SENTAKU
1820 *A5 :A$="ブラジル" :XP=417:YP=209:GOTO *SENTAKU
1830 *A6 :A$="ボリビア" :XP=348:YP=229:GOTO *SENTAKU
1840 *A7 :A$="エクアドル" :XP=302:YP=164:GOTO *SENTAKU
1850 *A8 :A$="コロンビア" :XP=318:YP=144:GOTO *SENTAKU
1860 *A9 :A$="ベネズェラ" :XP=350:YP=121:GOTO *SENTAKU
1870 *A10:A$="パナマ" :XP=298:YP=131:GOTO *SENTAKU
1880 *A11:A$="コスタリカ" :XP=284:YP=128:GOTO *SENTAKU
1890 *A12:A$="ニカラグア" :XP=277:YP=120:GOTO *SENTAKU
1900 *A13:A$="ホンジュラス" :XP=272:YP=107:GOTO *SENTAKU
1910 *A14:A$="エルサルバドル" :XP=262:YP=145:GOTO *SENTAKU
1920 *A15:A$="ベリ-ズ" :XP=292:YP=99 :GOTO *SENTAKU
1930 *A16:A$="グアテラマ" :XP=257:YP=103:GOTO *SENTAKU
1940 *A17:A$="メキシコ" :XP=228:YP=79 :GOTO *SENTAKU
1950 *A18:A$="キュ-バ" :XP=288:YP=79 :GOTO *SENTAKU
1960 *A19:A$="ジャマイカ" :XP=310:YP=118:GOTO *SENTAKU
1970 *A20:A$="バハマ" :XP=334:YP=42 :GOTO *SENTAKU
1980 *A21:A$="ハイチ" :XP=364:YP=44 :GOTO *SENTAKU
1990 *A22:A$="ドミニカ共和国" :XP=330:YP=90 :GOTO *SENTAKU
2000 *A23:A$="ガイアナ" :XP=379:YP=134:GOTO *SENTAKU
2010 *A24:A$="スリナム" :XP=391:YP=136:GOTO *SENTAKU
2020 *A25:A$="ギアナ" :XP=404:YP=138:GOTO *SENTAKU
2030 *A26:A$="トリニダ-ド・トバゴ" :XP=567:YP=118:GOTO *SENTAKU
2040 *A27:A$="グレナダ" :XP=566:YP=103:GOTO *SENTAKU
2050 *A28:A$="セントビンセント" :XP=566:YP=88 :GOTO *SENTAKU
2060 *A29:A$="セントルシア" :XP=561:YP=66 :GOTO *SENTAKU
2070 *A30:A$="バルバドス" :XP=572:YP=74 :GOTO *SENTAKU
2080 *A31:A$="ドミニカ" :XP=552:YP=56 :GOTO *SENTAKU
2090 *A32:A$="アンチグア・バ-ブ-ダ":XP=538:YP=46 :GOTO *SENTAKU
2100 *A33:A$="セントクリストファ-・ネイビス" :XP=521:YP=42 :GOTO *SENTAKU
2110 '
2120 *SENTAKU
2130 IF TTN=0 THEN GOTO *WRITE
2140 IF TTN=1 THEN GOTO *WRITE_NO
2150 IF TTN=2 THEN GOTO *SIRABE_WRITE
2160 '
2170 *WRITE
2180 LOCATE 14,21:COLOR 2:PRINT " "
2190 LOCATE 14,21:COLOR 2:PRINT A$
2200 GOTO 2240
2210 '
2220 *POINT
2230 MOUSE 5:MOUSE 0:MOUSE 1,X,Y,1: MOUSE 4,8,8,611,364:GOTO 2250
2240 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
2250 B=1
2260 X=MOUSE(4,0):Y=MOUSE(5,0)
2270 IF X>90 AND X<114 AND Y>27 AND Y<40 THEN GOTO *SIRABERU
2280 IF X>121 AND X<144 AND Y>27 AND Y<40 THEN BN=0 :GOTO *MODORU
2290 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
2300 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
2310 IF X>330 AND X<335 AND Y>289 AND Y<294 THEN TT=1 :GOTO *BUNKI
2320 IF X>362 AND X<367 AND Y>292 AND Y<297 THEN TT=2 :GOTO *BUNKI
2330 IF X>381 AND X<386 AND Y>293 AND Y<298 THEN TT=3 :GOTO *BUNKI
2340 IF X>380 AND X<385 AND Y>251 AND Y<256 THEN TT=4 :GOTO *BUNKI
2350 IF X>415 AND X<420 AND Y>207 AND Y<212 THEN TT=5 :GOTO *BUNKI
2360 IF X>346 AND X<351 AND Y>227 AND Y<232 THEN TT=6 :GOTO *BUNKI
2370 IF X>300 AND X<305 AND Y>162 AND Y<167 THEN TT=7 :GOTO *BUNKI
2380 IF X>316 AND X<321 AND Y>142 AND Y<147 THEN TT=8 :GOTO *BUNKI
2390 IF X>348 AND X<353 AND Y>119 AND Y<126 THEN TT=9 :GOTO *BUNKI
2400 IF X>296 AND X<301 AND Y>129 AND Y<134 THEN TT=10:GOTO *BUNKI
2410 IF X>282 AND X<287 AND Y>126 AND Y<131 THEN TT=11:GOTO *BUNKI
2420 IF X>275 AND X<280 AND Y>118 AND Y<123 THEN TT=12:GOTO *BUNKI
2430 IF X>270 AND X<275 AND Y>105 AND Y<110 THEN TT=13:GOTO *BUNKI
2440 IF X>260 AND X<265 AND Y>143 AND Y<148 THEN TT=14:GOTO *BUNKI
2450 IF X>290 AND X<295 AND Y>97 AND Y<102 THEN TT=15:GOTO *BUNKI
2460 IF X>255 AND X<260 AND Y>101 AND Y<106 THEN TT=16:GOTO *BUNKI
2470 IF X>226 AND X<231 AND Y>77 AND Y<82 THEN TT=17:GOTO *BUNKI
2480 IF X>286 AND X<291 AND Y>77 AND Y<82 THEN TT=18:GOTO *BUNKI
2490 IF X>308 AND X<313 AND Y>116 AND Y<121 THEN TT=19:GOTO *BUNKI
2500 IF X>332 AND X<337 AND Y>40 AND Y<45 THEN TT=20:GOTO *BUNKI
2510 IF X>362 AND X<367 AND Y>42 AND Y<47 THEN TT=21:GOTO *BUNKI
2520 IF X>328 AND X<333 AND Y>68 AND Y<93 THEN TT=22:GOTO *BUNKI
2530 IF X>377 AND X<382 AND Y>132 AND Y<137 THEN TT=23:GOTO *BUNKI
2540 IF X>389 AND X<394 AND Y>134 AND Y<139 THEN TT=24:GOTO *BUNKI
2550 IF X>402 AND X<407 AND Y>136 AND Y<141 THEN TT=25:GOTO *BUNKI
2560 IF X>565 AND X<570 AND Y>116 AND Y<121 THEN TT=26:GOTO *BUNKI
2570 IF X>564 AND X<569 AND Y>101 AND Y<106 THEN TT=27:GOTO *BUNKI
2580 IF X>564 AND X<569 AND Y>86 AND Y<91 THEN TT=28:GOTO *BUNKI
2590 IF X>559 AND X<564 AND Y>64 AND Y<69 THEN TT=29:GOTO *BUNKI
2600 IF X>570 AND X<575 AND Y>72 AND Y<77 THEN TT=30:GOTO *BUNKI
2610 IF X>550 AND X<555 AND Y>54 AND Y<59 THEN TT=31:GOTO *BUNKI
2620 IF X>536 AND X<541 AND Y>44 AND Y<49 THEN TT=32:GOTO *BUNKI
2630 IF X>519 AND X<524 AND Y>40 AND Y<45 THEN TT=33:GOTO *BUNKI
2640 IF B=1 THEN 2650 ELSE 2260
2650 'MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
2660 B=B+1
2670 GOTO 2260
2680 '
2690 '
2700 *BUNKI
2710 IF BN=0 THEN *QUIZ ELSE *SIRABE
2720 *QUIZ
2730 IF QQ=TT THEN *YES ELSE *NO
2740 *SIRABE
2750 TTN=2:GOTO *CHECK
2760 '
2770 *YES
2780 CY=CY+1
2790 LOCATE 15,22:COLOR 3: PRINT"★★★ 正解です。 ★★★"
2800 PCMPLAY YES_S%
2810 GOSUB *COUNT
2820 WAIT 100
2830 WAIT 100
2840 LOCATE 15,22:COLOR 1:PRINT" "
2850 IF QQN=2 THEN GOTO 3460
2860 GOTO 1680
2870 '
2880 *NO
2890 CN=CN+1:TTN=1
2900 LOCATE 15,22:COLOR 3:PRINT"☆☆☆ 残念でした。 ☆☆☆"
2910 PCMPLAY NO_S%
2920 XPP=XP:YPP=YP
2930 *CHECK
2940 IF TT=<10 THEN Q=TT :GOTO *M0
2950 IF TT>10 AND TT=<20 THEN Q=TT-10:GOTO *M1
2960 IF TT>20 AND TT=<30 THEN Q=TT-20:GOTO *M2
2970 IF TT>30 AND TT=<40 THEN Q=TT-30:GOTO *M3
2980 *WRITE_NO
2990 LOCATE 10,22:COLOR 3
3000 PRINT"★★★ 残念でした。 ★★★ そこは 『";A$;"』 です。"
3010 GOSUB *COUNT
3020 IF QQN=0 THEN GOSUB *KIROKU
3030 WAIT 70
3040 CIRCLE (XPP,YPP),6,5,,,,F,XOR
3050 WAIT 250
3060 CIRCLE (XPP,YPP),6,5,,,,F,XOR
3070 LOCATE 10,22:COLOR 1:PRINT SPACE$(70)
3080 IF QQN=2 THEN GOTO 3460
3090 GOTO 1680
3100 '
3110 *COUNT
3120 CT=CY+CN
3130 CC=INT((CY/CT)*100)
3140 CG=INT(CC*3):IF CG>297 THEN CG=297
3150 LOCATE 44,23:PRINT " "
3160 LOCATE 70,23:PRINT " "
3170 LOCATE 44,23:COLOR 3:PRINT "(";CY;"/";CT;") "
3180 LOCATE 70,23:COLOR 3:PRINT CC
3190 LINE (280, 457)-(578, 461),PSET,%4,BF
3200 LINE (280, 457)-(281+CG,461),PSET,%3,BF
3210 LINE (280+CG,457)-(578, 461),PSET,%4,BF
3220 RETURN
3230 '
3240 *KIROKU
3250 KIR(KIRN)=QQ:KIRN=KIRN+1
3260 RETURN
3270 '
3280 '** 確認 選択 **
3290 MOUSE 5:CLS 4:LOAD@ "E_CLEAR.TIF",(165,454)
3300 LOCATE 10,21 :COLOR 2:PRINT"間違いを確かめますか?"
3310 LOCATE 20,22 :COLOR 1:PRINT" 確かめます。"
3320 MOUSE 5:MOUSE 0:MOUSE 1,365,207,1:MOUSE 4,8,8,611,364
3330 LOCATE 20,23 :COLOR 1:PRINT" 確かめません。"
3340 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
3350 X=MOUSE(4,0):Y=MOUSE(5,0)
3360 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
3370 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
3380 IF X>199 AND X<268 AND Y>418 AND Y<432 THEN GOTO 3420
3390 IF X>199 AND X<288 AND Y>438 AND Y<453 THEN GOTO 3530
3400 GOTO 3350
3410 '
3420 '** 確認 ROOTINE **
3430 PNO=KIRN-1:QQN=1:CY=0:CN=0
3440 FOR J=0 TO PNO
3450 QQ=KIR(J):GOTO 1380
3460 NEXT J
3470 MOUSE 5:CLS 4:LOAD@ "E_CLEAR.TIF",(165,454)
3480 LOCATE 10,21 :COLOR 2:PRINT"もう一度、間違いを確かめますか?"
3490 GOTO 3310
3500 '
3510 '** END 選択 **
3520 LOAD@ "E_CLEAR.TIF",(165,454)
3530 CLS 4:ERASE KIR:ERASE NFW
3540 LOCATE 10,21 :COLOR 2:PRINT"続けますか?"
3550 LOCATE 20,22 :COLOR 1:PRINT" 続けます。"
3560 LOCATE 20,23 :COLOR 1:PRINT" 終わります。"
3570 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
3580 X=MOUSE(4,0):Y=MOUSE(5,0)
3590 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
3600 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
3610 IF X>199 AND X<268 AND Y>418 AND Y<432 THEN GOTO 1120
3620 IF X>199 AND X<288 AND Y>438 AND Y<453 THEN GOTO 3650
3630 GOTO 3580
3640 '
3650 IF MENU=1 THEN 3670 ELSE 3860
3660 '
3670 CLS 4
3680 LOCATE 10,21 :COLOR 2:PRINT"メニュ-に戻りますか?"
3690 LOCATE 20,22 :COLOR 1:PRINT" メニュ-に戻ります。"
3700 LOCATE 20,23 :COLOR 1:PRINT" メニュ-に戻らず終わります。"
3710 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
3720 X=MOUSE(4,0):Y=MOUSE(5,0)
3730 IF X>18 AND X<38 AND Y>18 AND Y<38 THEN GOTO *MENU_E
3740 IF X>51 AND X<71 AND Y>18 AND Y<38 THEN GOTO *OWARI_E
3750 IF Y>418 AND Y<432 THEN GOTO 3820
3760 IF Y>438 AND Y<453 THEN GOTO 3860
3770 GOTO 3720
3780 '
3790 *MENU_E
3800 ERASE KIR:ERASE NFW
3810 *MENU_1
3820 CHAIN "B_MENU2.BAS",,ALL
3830 RUN "B_MENU2.BAS"
3840 '
3850 *OWARI_E
3860 CHAIN "B_END.BAS",,ALL
3870 RUN "B_END.BAS"
3880 '
3890 *SIRABERU
3900 IF SIR=1 THEN GOTO 3940
3910 LOCATE 14,21:PRINT " "
3920 LOCATE 14,21:COLOR 3:PRINT "クイズ中断中, 調べモードです。"
3930 GOTO 3970
3940 LINE(199,415)-(437,437),PSET,%4,BF:LOCATE 24,23:PRINT SPACE$(55)
3950 LOCATE 24,21:PRINT " "
3960 LOCATE 24,21:COLOR 3:PRINT "クイズ中断中, 調べモードです。"
3970 LOCATE 24,22:PRINT SPACE$(50)
3980 BN=1:GOTO *POINT
3990 '
4000 *SIRABE_WRITE
4010 LOCATE 15,22:COLOR 3:PRINT SPACE$(50)
4020 FOR T=5 TO 2 STEP -1
4030 LOCATE 15,22:COLOR T:PRINT"そこは 『";A$;"』 です。"
4040 WAIT 25
4050 NEXT
4060 WAIT 50:GOTO *POINT
4070 '
4080 *MODORU
4090 IF SIR=1 THEN GOTO *MENU_GAMEN'
4100 LOCATE 24,21:PRINT " "
4110 LOCATE 15,22:PRINT SPACE$(50)
4120 GOTO 1690
4130 '
4140 *MOUS
4150 MOUSE 5:MOUSE 0:MOUSE 1,596,353,1
4160 X=MOUSE(4,0):Y=MOUSE(5,0)
4170 LOCATE 55,22:PRINT X;Y
4180 GOTO 4160
4190 '